package com.xz.danhuaapiinterface.controller;

import com.xz.danhuaapiclientsdk.model.User;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * @author 徐洲
 * @version 1.0
 * @createTime 2024-07-06
 * @description
 */
@RestController
@RequestMapping("/name")
public class NameController {

    @GetMapping("/get")
    public String getName(String name) {
        return "GET " + name;
    }

    @PostMapping("/post")
    public String postName(@RequestParam String name) {
        return "POST " + name;
    }

    @PostMapping("/user")
    public String postNameJson(@RequestBody User user, HttpServletRequest request) {
//        String accessKey = request.getHeader("accessKey");
//        String nonce = request.getHeader("nonce");
//        String timestamp = request.getHeader("timestamp");
//        String sign = request.getHeader("sign");
        // 这段代码将从 ISO-8859-1 解码得到的字节流再用 UTF-8 编码，以适应中文字符。
//        String body = new String(request.getHeader("body").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        //校验时间戳
//        Long currentTime = System.currentTimeMillis() / 1000;
//        Long FIFT_TIME = 60 * 5L;
//        if ((currentTime - Long.parseLong(timestamp)) > (FIFT_TIME)) {
//            throw new RuntimeException("无权限! 小黑子能不能不要再黑我家哥哥啦~");
//        }
        // todo 实际上应该去数据库查询
//        if (!"ikun".equals(accessKey)) {
//            throw new RuntimeException("无权限! 小黑子能不能不要再黑我家哥哥啦~");
//        }
        // todo 这里不校验随机数了
//        if (Long.parseLong(nonce) > 10000) {
//            throw new RuntimeException("无权限! 小黑子能不能不要再黑我家哥哥啦~");
//        }
//        String serverSign = SignUtils.genSign(body, "P@ssw0rd");
//        if (!sign.equals(serverSign)) {
//            throw new RuntimeException("无权限! 小黑子能不能不要再黑我家哥哥啦~");
//        }

        String result =  "post 方法 json 参数 用户的名字: " + user.getUsername();

        return result;
    }
}
